package yyy.ab.modules.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import yyy.ab.common.constant.AdminConstant;
import yyy.ab.common.core.BaseService;
import yyy.ab.common.core.ResultBean;
import yyy.ab.modules.system.entity.SysUser;

import java.util.Map;

/**
 * 系统服务接口
 */
@CacheConfig(cacheNames = AdminConstant.CACHE_PREFIX + "user")
public interface SysUserService extends BaseService<SysUser> {

    /**
     * 通过用户名获取用户
     *
     * @param username
     * @return
     */
    @Cacheable(key = "#username")
    SysUser findByUsername(String username);

    /**
     * 分页查询
     *
     * @return
     */
    IPage<SysUser> findPage(Map<String, Object> params);

    /**
     * 更新用户状态
     *
     * @param userId  用户id
     * @param enabled 状态 1：启用，0：禁用
     * @return
     */
    ResultBean updateStatus(Long userId, Integer enabled);

    /**
     * 重置用户密码
     *
     * @param userId 用户id
     * @return
     */
    ResultBean resetPassword(Long userId);
}
